package Dominio;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;

public class Servidor {

	public Servidor() {
		// TODO - implement Servidor.Servidor
		// throw new UnsupportedOperationException();
	}

	/**
	 * 
	 * @param usuario
	 * @param clave
	 */
	public boolean acceso(String usuario, String clave) {
		// TODO - implement Servidor.acceso

		FileReader fr;
		try {
			fr = new FileReader("usuarios.txt");
			String user;
			String pass;
			BufferedReader br = new BufferedReader(fr);

			while (!usuario.equals(user = br.readLine()) && user != null) {
				br.readLine();

			}

			if (clave.equals(pass = br.readLine())) {
				return true;
			}

			if (usuario == null) {
				return false;
			}

		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		return false;

		// throw new UnsupportedOperationException();
	}

	/**
	 * 
	 * @param idAula
	 */
	public LinkedList<String> mostrarAsignaturas(int idAula) {
		// TODO - implement Servidor.mostrarAsignaturas
		// throw new UnsupportedOperationException();
		LinkedList<String> elem = null;

		FileReader fr;
		try {
			fr = new FileReader("asignaturas.txt");
			String nombre, creditos, curso, cAcademico;
			BufferedReader br = new BufferedReader(fr);
			for (int pas = 0; pas < idAula * 5; pas++) {
				br.readLine();
			}
			if ((nombre = br.readLine()) != null) {
				elem = new LinkedList<String>();
				creditos = br.readLine();
				curso = br.readLine();
				cAcademico = br.readLine();
				elem.add(0, nombre);
				elem.add(1, creditos);
				elem.add(2, curso);
				elem.add(3, cAcademico);
			}
			
			fr.close();
			
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return elem;
	}

	/**
	 * 
	 * @param asignatura
	 */
	public LinkedList<String> mostrarHorarios(String asignatura) {
		//throw new UnsupportedOperationException();
		LinkedList<String> horarios = new LinkedList<String>();
		
		FileReader fr;
		
		try {
			fr = new FileReader("horarios.txt");
			BufferedReader br = new BufferedReader(fr);
			String linea, horario;

			while((linea = br.readLine()) != null){
				if(linea.equals(asignatura)){
					for(int i = 0; i < 5; i++){
						linea = br.readLine();
						horario = linea.split(":")[1].trim();
						horarios.add(horario);
					}
				}
				
			}
			
			fr.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return horarios;
	}

	/**
	 * 
	 * @param idAula
	 * @param idAsignatura
	 */
	public LinkedList<String> asistenciaAlumnos(int idAula/* , int idAsignatura */) {
		LinkedList<String> elem = null;

		FileReader fr;
		try {
			fr = new FileReader("asistencia.txt");
			String nombre, falta, cAcademico;
			BufferedReader br = new BufferedReader(fr);
			for (int pas = 0; pas < idAula * 5; pas++) {
				br.readLine();
			}
			if ((nombre = br.readLine()) != null) {
				elem = new LinkedList<String>();
				falta = br.readLine();
				cAcademico = br.readLine();
				elem.add(0, nombre);
				elem.add(1, falta);
				elem.add(2, cAcademico);
			}
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return elem;
	}

	

}